/**
 * 图片管理器
 * 用于缓存和管理图片资源，避免重复创建图片对象
 */
class ImageManager {
  constructor() {
    // 缓存图片对象的Map
    this.imageCache = new Map();
  }

  /**
   * 根据src获取图片对象
   * 如果缓存中存在，则返回缓存的图片
   * 如果不存在，则创建新的图片对象并缓存
   * @param {string} src - 图片路径
   * @returns {Image} 图片对象
   */
  getImage(src) {
    // 检查缓存中是否存在
    if (this.imageCache.has(src)) {
      return this.imageCache.get(src);
    }

    // 创建新的图片对象
    const img = wx.createImage();
    img.src = src;

    // 缓存图片对象
    this.imageCache.set(src, img);
    return img;
  }

  /**
   * 清除指定src的图片缓存
   * @param {string} src - 图片路径
   */
  removeImage(src) {
    if (this.imageCache.has(src)) {
      this.imageCache.delete(src);
    }
  }

  /**
   * 清除所有图片缓存
   */
  clearCache() {
    this.imageCache.clear();
  }
}

// 导出单例实例
export default new ImageManager();